import typescript from '@rollup/plugin-typescript';
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import serve from 'rollup-plugin-serve';
import babel from '@rollup/plugin-babel';
import livereload from 'rollup-plugin-livereload';

const extensions = ['.ts', '.js'];

export default {
  input: './src/index.ts', //输入 打包的文件
  output: [
    {
      file: 'dist/bundle.umd.js', // UMD格式，可用于浏览器和Node.js
      format: 'umd',
      name: 'BEST_OFD', // 全局变量名
    },
    {
      file: 'dist/bundle.cjs.js', // CommonJS格式输出文件
      format: 'cjs',
    },
    {
      file: 'dist/bundle.esm.js', // ES模块格式输出文件
      format: 'es',
    },
  ],
  plugins: [
    /** 使用typescript插件 */
    typescript({ tsconfig: './tsconfig.json' }), // 转换 TypeScript 文件
    resolve({
      extensions,
    }),
    // 将 CommonJS 模块转换为 ES2015 模块
    commonjs(),
    babel({
      extensions,
      // babelHelpers: 'bundled',
      exclude: 'node_modules/**', // 排除node_modules目录下的文件进行Babel转换
    }),
    serve({
      open: true,
      port: 8180,
      contentBase: ['dist', 'public'],
    }),
    livereload(),
  ],
};
